package com.itqian.seller.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 订单主表
 * </p>
 *
 * @author shishuqian
 * @since 2022-03-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class OrderMaster implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 订单id(32位uuid)
     *
     */
    //@TableId(value = "order_id",type = IdType.ASSIGN_UUID)
    @TableId(value = "order_id", type = IdType.AUTO)
    private Integer orderId;

    /**
     * 买家id
     */
    private Integer buyerId;

    /**
     * 店铺id
     */
    private Integer storeId;

    /**
     * 配送员id
     */
    private Integer runnerId;

    /**
     * 配送员姓名
     */
    private String runnerName;

    /**
     * 配送员手机号
     */
    private String runnerPhone;

    /**
     * 买家姓名
     */
    private String buyerName;

    /**
     * 买家手机号
     */
    private String buyerPhone;

    /**
     * 买家配送地址
     */
    private String buyerAddress;

    /**
     * 买家备注
     */
    private String buyerRemark;

    /**
     * 订单总价金额(一次购买中，在同一店铺里买的所有菜品应该算入一个订单中)
     */
    private BigDecimal orderAmount;

    /**
     * 订单状态,默认0已下单，1商家确认订单，2配送员接单配送中，3完成，4用户取消，5商家取消,6已评价
     */
    private Integer orderStatus;

    /**
     * 支付状态，默认0未支付，1已支付(商家接单后不能取消订单)，,2申请退款中，3商家已同意退款，退款成功，4商家不同意退款
     */
    private Integer payStatus;

    /**
     * 用户是否删除了订单:true删除，false没有
     */
    private Boolean buyerDeleted;

    /**
     * 卖家是否删除了订单:true删除，false没有
     */
    private Boolean sellerDeleted;

    /**
     * 配送员是否删除了订单:true删除，false没有
     */
    private Boolean runnerDeleted;

    /**
     * 管理员是否删除了订单:true删除，false没有
     */
    private Boolean adminDeleted;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;


}
